package com.melodyframe.tableland.engine.process.event;

import java.util.List;
import java.util.Set;

import com.melodyframe.tableland.engine.model.Table;
import com.melodyframe.tableland.engine.process.command.Command;
import com.melodyframe.tableland.engine.process.command.CommandPower;

/**
 * <h1>事件</h1>
 * <p>
 * 事件是由游戏引擎发起的游戏进程，事件会对当前游戏的场景或状态产生影响和变化。
 * </p>
 * <p>
 * 事件中也可以邀请玩家参与，如果需要玩家参与可以向玩家发送{@link CommandPower 指令}请求。
 * </p>
 * 
 * @author ettear
 */
public interface Event {

    /**
     * 执行事件
     * 
     * @param table
     * @return
     */
    public List<Set<CommandPower<Command>>> doEvent(Table table);

}
